import os
import sys

server_py_template = """# 由pmm管理工具自动生成
# 微服务[{0}]主入口
# Tips: 直接使用python server.py启动微服务即可
from python_microservice_sdk import start_server

if __name__ == "__main__":
    # 这里不要乱动，这是启动服务的核心方法
    start_server()
"""

config_py_template = """# 由pmm管理工具自动生成
# 微服务配置，可以放在根目录下，也可以放在一级子目录下;
# Important: 名称必须是settings.py, 不可更改

PYTHON_SERVICE_CONFIG = {{
    "app_name": "{0}",                                  # 应用名
    "eureka_server": "http://localhost:8761/eureka/",   # Eureka服务器地址
    "instance_port": {1:d},                             # 提供微服务的应用实例端口
    "instance_host": "localhost",                       # 提供微服务的应用实例主机
    "metadata": {{
        "app_version": "0.0.1",                         # 应用版本，供灰度等使用
        "update_paths": ["."]                           # 要自动更新的路径，默认全部更新
    }}
}}
"""


def run(project_dir: str):

    # 默认值
    port = 27326

    args = sys.argv[3:]
    if len(args) == 0:
        print("create需要至少有一个app_name的参数!")
        exit(-1)

    app_name = args[0]
    if len(args) > 1:
        port = int(args[1])

    with open(os.path.join(project_dir, "server.py"), "w", encoding="utf-8")as fp:
        fp.write(server_py_template.format(app_name))

    with open(os.path.join(project_dir, "config.py"), "w", encoding="utf-8")as fp:
        fp.write(config_py_template.format(app_name, port))
